home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / rexx / 1808 < prev    next >
Encoding:
Internet Message Format  |  1996-08-06  |  1.7 KB

  1. Path: ux2.cso.uiuc.edu!shair
  2. From: rmshair@uiuc.edu (Bob Shair)
  3. Newsgroups: comp.lang.rexx
  4. Subject: REXX BEAUTIES: Parse a string of keywords and values
  5. Date: 3 Apr 1996 21:34:57 GMT
  6. Organization: University of Illinois at Urbana
  7. Distribution: inet
  8. Message-ID: <4juqu1$qpu@vixen.cso.uiuc.edu>
  9. References: <changi0.9m.29HzgB$07j@engcorp.com>
  10. NNTP-Posting-Host: ux2.cso.uiuc.edu
  11. Originator: shair@ux2.cso.uiuc.edu
  12.  
  13. peter@engcorp.com (Peter Hansen) writes:
  14. >I like to see the occasional posting with somebody's programming gems,
  15.  
  16. /* Two neat ideas here:                                                */
  17. /* This example happens to come from CMS, but I don't think it matters */
  18.  
  19. parse arg ifid host ofid "(" option_list ")"  remainder
  20. BLOCK=''; LRECL='';
  21. /* Idea 1:Tearing apart a list of arbitrarily ordered codes and values,*/
  22. /* e.g. (block 8192 po 2199 A NO) and extracting the values from them  */
  23. do while option_list \= ''
  24.     parse upper var option_list opt val option_list
  25.     select
  26.       when abbrev('BLOCK  ',opt,1) then do; bksz=val; BLOCK="BLOCK"; end
  27.       when abbrev('LRECL  ',opt,1) then do; lrec=val; LRECL="LRECL"; end
  28.       when abbrev('PORT   ',opt,1) then port=val
  29.       when abbrev('HEADERS',opt,1) then headers=val
  30.       when abbrev('ASCII  ',opt,1) then ASCII=val
  31.       otherwise do; say 'Invalid option' opt; signal options; end
  32.     end
  33. end
  34. /* Idea 2:pre-assigning NULL to variables substituted into a command */
  35. /* so they only appear if the user specifies the corresponding value */
  36. 'DYNOPEN TAPEIN DSN' ifid '(TAP1 INPUT' BLOCK bksz LRECL lrec
  37. -- 
  38.  
  39. Bob Shair                          Open Systems Consultant
  40. 1018 W. Springfield Avenue         rmshair@uiuc.edu
  41. Champaign, IL 61821           217/356-2684
  42.